Browser extension for field detection and automatic population

ABSTRACT

Methods and systems for a browser extension system are disclosed. In some embodiments, a system includes a communication device configured to communicate with a computing device executing a browser extension application and a processor configured to execute instructions to perform operations. The operations include providing to the browser extension application a regular expression configured to detect fields in a web page; receiving, from the browser extension application, an indication of an unrecognized field in the web page based on using the regular expression to detect a transaction field in a web page; in response to the received indication of the unrecognized field, providing suggested transaction data to the browser extension application; receiving, from the browser extension application, an indication of detected manual population of the unrecognized field with the suggested transaction data; and providing to the browser extension application an updated regular expression configured to detect the unrecognized field.

BACKGROUND

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 62/371,276 filed Aug. 5, 2016, the contents of which are herebyincorporated by reference in their entirety.

BACKGROUND

Many users access information on the Internet using softwareapplications known as web browser applications. Web browser applicationsinterpret the various programming languages in which information on theInternet is written, such as hyper-text markup language (HTML) or anextensible markup language (XML), to provide the information to users ina user-readable format.

Some web pages may include one or more fields requiring information tobe entered by a user. For example, a web page through which a user canpurchase a good or service may include one or more fields to bepopulated with data to identify the user and/or provide payment for thegood. As another example, a web page through which a user can registerfor an event may include one or more fields to be populated to identifythe user and/or a mailing address of the user.

Additional functionality may be added to web browsers by browserextension applications. A browser extension application is a softwareapplication made to be downloaded by a user and installed on the user'scomputing device to offer additional features to the browser. When theuser accesses the Internet through a web browser application, thebrowser extension application may provide the user with additionalfunctionality within the web browser application.

Some browser extension applications may be configured to automaticallypopulate fields in a web page requiring population by a user. Forexample, a browser extension may be configured to automatically populatedata identifying a user, providing payment, and/or providing a mailingaddress.

Due to the diversity of web pages, fields, and programming languages inwhich information on the Internet is written, however, typical browserextension applications may be unable to correctly identify fieldsrequiring population in certain web pages. Moreover, as web pages areupdated, fields may be changed, added, and/or removed from web pages.Typical browser extension applications may be unable to recognize andaddress such changes, additions, and removals.

When fields are incorrectly identified and/or populated by a browserextension application, subsequent correction by a user and/or thebrowser extension application may be required, resulting in inefficientcommunications, extra bandwidth consumption, and processor utilization.Moreover, for some web pages, such as dynamic web pages that activelycommunicate with a server providing the web page, such subsequentcorrection may result in inefficient communications, extra bandwidthconsumption, and processor utilization on the server side as well, dueto delays at the server caused by the corrections.

SUMMARY

The disclosed embodiments may include systems and methods for a browserextension for field detection and automatic population.

In one embodiment, a browser extension server is disclosed. The browserextension server may include a communication device configured tocommunicate with a computing device executing a browser extensionapplication; a memory storing instructions; and a processor configuredto execute the instructions to perform operations. The operations mayinclude generating a regular expression configured to detect a pluralityof fields in a web page; providing the regular expression to the browserextension application; receiving, from the browser extensionapplication, an indication of an unrecognized field in the web pagebased on an execution of the browser extension application by thecomputing device, the execution comprising using the regular expressionto detect a transaction field in a web page; in response to the receivedindication of the unrecognized field, providing suggested transactiondata to the browser extension application; receiving, from the browserextension application, an indication of detected manual population ofthe unrecognized field with the suggested transaction data; generatingan updated regular expression configured to detect the unrecognizedfield in the web page based on the detected manual population; andproviding the updated regular expression to the browser extensionapplication.

In another embodiment, a method is disclosed. The method may includegenerating a regular expression configured to detect a plurality offields in a web page; providing the regular expression to a browserextension application executed at a computing device; receiving, fromthe browser extension application, an indication of an unrecognizedfield in the web page based on an execution of the browser extensionapplication by the computing device, the execution comprising using theregular expression to detect a transaction field in a web page; inresponse to the received indication of the unrecognized field, providingsuggested transaction data to the browser extension application;receiving from the browser extension application an indication ofdetected manual population of the unrecognized field with the suggestedtransaction data; generating, based on the manual population, an updatedregular expression configured to detect the unrecognized field in theweb page; and providing the updated regular expression to the browserextension application.

In still another embodiments, a browser extension application configuredto be executed at a computing device to perform operations. Theoperations include receiving from a browser extension server a regularexpression configured to detect a plurality of fields in a web page;executing the regular expression to detect a transaction field in theweb page and automatically populate the transaction field with storeddata; detecting an unrecognized field in the web page; in response todetecting the unrecognized field, providing suggested transaction data;detecting manual population of the unrecognized field with the suggestedtransaction data; providing to the browser extension server anindication of the unrecognized field; and receiving from the browserextension server an updated regular expression configured to detect theunrecognized field in the web page.

Aspects of the disclosed embodiments may include tangiblecomputer-readable media that store software instructions that, whenexecuted by one or more processors, are configured for and capable ofperforming and executing one or more of the methods, operations, and thelike consistent with the disclosed embodiments. Also, aspects of thedisclosed embodiments may be performed by one or more processors thatare configured as special-purpose processor(s) based on softwareinstructions that are programmed with logic and instructions thatperform, when executed, one or more operations consistent with thedisclosed embodiments.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the disclosed embodiments, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate disclosed embodiments and,together with the description, serve to explain the disclosedembodiments. In the drawings:

FIG. 1 is a block diagram of an exemplary system for field detection andautomatic population, consistent with disclosed embodiments.

FIG. 2 is a block diagram of an exemplary browser extension system,consistent with disclosed embodiments.

FIG. 3 is a block diagram of an exemplary computing device, consistentwith disclosed embodiments.

FIGS. 4A-4C are flowcharts of exemplary browser extension processes,consistent with disclosed embodiments.

FIGS. 5A-5C illustrate exemplary interfaces on computing devices,consistent with disclosed embodiments.

FIG. 6 is a flowchart of a browser extension message stream, consistentwith disclosed embodiments.

FIGS. 7A-7C illustrate exemplary interfaces including amerchant-provided payment process on computing devices, consistent withdisclosed embodiments.

FIGS. 8A-8C illustrate exemplary interfaces including a secure tokengeneration process on computing devices, consistent with disclosedembodiments.

FIG. 9 is a flowchart of a browser extension message stream, consistentwith disclosed embodiments.

FIG. 10 illustrates an exemplary interface including a merchant ratingprocess on computing devices, consistent with disclosed embodiments.

DETAILED DESCRIPTION

Reference will now be made in detail to the disclosed embodiments,examples of which are illustrated in the accompanying drawings.

The disclosed systems, methods, and computer-readable media include abrowser extension application configured to identify fields requiringpopulation in web pages. Unlike conventional browser extensionapplications, the disclosed browser extension application may, throughiterative interaction with a browser extension server, be configured torecognize and automatically populate fields in web pages, includingfields that have been altered, added to, or removed from the web pages.In these and other manners, the disclosed browser extension applicationrepresents an improvement over conventional browser extensionapplications. The disclosed browser extension application improvesutilization of both processing and communications resources through thereduction of unintended errors in data submissions. Moreover, theimproved automatic population enabled by the disclosed browser extensionapplication may improve efficiency of web page population on the whole,thereby reducing or eliminating inefficient communications bandwidthconsumption and processor utilization necessitated when a userincorrectly populates a field in a web page (e.g., through amisunderstanding or typographical error).

FIG. 1 is a block diagram of an exemplary system 100, consistent withdisclosed embodiments. System 100 may be configured for performing abrowser extension process consistent with disclosed embodiments.

As shown, system 100 may include a computing device 102 associated witha user 104. Computing device 102 may be configured to execute, amongother programs, a browser extension application 106 and a web browserapplication 108. System 100 may further include a browser extensionserver 110, a financial service provider (FSP) system 112, and amerchant system 114. As shown, computing device 102, browser extensionserver 110, FSP system 112, and merchant system 114 may becommunicatively coupled by a network 116.

While only one computing device 102, browser extension server 110, FSPsystem 112, merchant system 114, and network 116 are shown, it will beunderstood that system 100 may include more than one of any of thesecomponents. More generally, the components and arrangement of thecomponents included in system 100 may vary. Thus, system 100 may includeother components that perform or assist in the performance of one ormore processes consistent with the disclosed embodiments.

Computing device 102 may be one or more computing devices configured toperform operations consistent with executing browser extensionapplication 106 and with executing web browser application 108.Computing device 102 is further described below in connection with FIG.3.

Browser extension application 106 may be one or more softwareapplications configured to perform operations consistent with detectingand/or automatically populating fields in web pages, such as transactionfields in web pages associated with merchants. For example, browserextension application 106 may be configured to automatically populatedetected transaction fields in web pages with stored transaction dataassociated with user 104 and/or computing device 102. Alternatively oradditionally, browser extension application 106 may be configured toautomatically populate detected transaction fields in web pages withsecure tokens, virtual account numbers, or other payment data mapped tofinancial service accounts associated with user 104 and/or computingdevice 102.

In some embodiments, browser extension application 106 may detect and/orautomatically populate transaction fields in web pages using, forexample, one or more regular expressions. A regular expression may bedefined as a sequence of characters that defines a search pattern.Example regular expressions may include, for instance, RegExp, RegEx, orPOSIX regular expressions. Other regular expressions are possible aswell.

In some embodiments, a regular expression may be configured for use insearching web pages according to the search pattern to detect elementssuch as, for example, transaction fields and/or additional elements inthe web pages. In some embodiments, a regular expression may beconfigured for use in detecting, for example, transaction fields and/oradditional elements in programming language used to create the webpages, such as hypertext markup language (HTML) or extensible markuplanguage (XML). For example, transaction fields and/or additionalelements may be detected based on “ID” and/or “NAME” attributes forfields within the programming language.

Web browser application 108 may be one or more software applicationsconfigured to perform operations consistent with providing web pages,such as web pages associated with merchants. The web pages may includetransaction fields. Web browser application 108 is further describedbelow in connection with FIG. 3.

Browser extension server 110 may be one or more computing devicesconfigured to perform operations consistent with providing browserextension application 106. Browser extension server 110 may be furtherconfigured to perform operations consistent with generating regularexpressions for use by browser extension application 106 in detectingand/or populating transaction fields in web pages. Alternatively oradditionally, browser extension server 110 may be further configured toperform operations consistent with generating secure tokens, virtualaccount numbers, or other payment data mapped to financial serviceaccounts. Browser extension server 110 is further described below inconnection with FIG. 2.

FSP system 112 may be associated with a financial service entity thatprovides, maintains, manages, or otherwise offers financial services.For example, the financial service entity may be a bank, credit cardissuer, or any other type of financial service entity that generates,provides, manages, and/or maintains financial service accounts for oneor more customers. Financial service accounts may include, for example,credit card accounts, loan accounts, checking accounts, savingsaccounts, reward or loyalty program accounts, and/or any other type offinancial service account known to those skilled in the art.

FSP system 112 may be one or more computing devices configured toperform operations consistent with maintaining financial serviceaccounts, including a financial service account associated with user104. FSP system 112 may be further configured to authenticate financialtransactions associated with such financial service accounts. Inparticular, FSP system 112 may be configured to authenticate financialtransactions associated with a financial service account associated withuser 104. In some embodiments, FSP system 112 may be further configuredto generate content for a display device included in, or connected to,computing device 102, such as through a mobile banking or otherapplication on computing device 102. Alternatively or additionally, FSPsystem 112 may be configured to provide content through one or more webpages or online portals that are accessible by computing device 102 overnetwork 116. The disclosed embodiments are not limited to any particularconfiguration of FSP system 112.

While browser extension server 110 and FSP system 112 are shownseparately, in some embodiments browser extension server 110 may includeor be otherwise related to FSP system 112. For example, in someembodiments the facility of browser extension server 110 may be providedinstead by FSP system 112, or vice versa. Alternatively or additionally,in some embodiments, browser extension server 110 may be included in,and/or be otherwise related to, any other entity in system 100 and/or athird-party not shown in system 100. Alternatively or additionally,browser extension server 110 may be a standalone server. Browserextension server 110 may take other forms as well.

Merchant system 114 may be one or more computing devices configured toperform operations consistent with providing web pages that areaccessible by computing device 102 over network 116. For example, theweb pages may be provided at computing device 102 through web browserapplication 108. In some embodiments, merchant system 114 may beassociated with a merchant that provides goods or services. Further, insome embodiments, the web pages may be online retail web pages throughwhich user 104 may engage in purchase transactions to purchase themerchant's goods or services. Other web pages are possible as well. Thedisclosed embodiments are not limited to any particular configuration ofmerchant system 114.

In some embodiments, merchant system 114 may include a merchant paymentsystem 118. Merchant payment system 118 may be one or more computingdevices configured to perform operations consistent with providing,within the web pages provided by merchant system 114, amerchant-provided payment process through which user 104 may engage inpurchase transactions to purchase the merchant's goods or services. Insome embodiments, merchant payment system 118 may be provided by themerchant in connection with one or more financial service providers,such as the financial service provider associated with FSP system 112 oranother financial service provider. The payment process may, forexample, be the same as or similar to MasterPass™, PayPal®, or Visa®Checkout. Other payment processes are possible as well.

Network 116 may be any type of network configured to providecommunication between components of system 100. For example, network 116may be any type of network (including infrastructure) that providescommunications, exchanges information, and/or facilitates the exchangeof information, such as the Internet, a Local Area Network, near fieldcommunication (NFC), optical code scanner, or other suitableconnection(s) that enables the sending and receiving of informationbetween the components of system 100. In other embodiments, one or morecomponents of system 100 may communicate directly through a dedicatedcommunication link(s).

It is to be understood that the configuration and boundaries of thefunctional building blocks of system 100 have been defined herein forthe convenience of the description. Alternative boundaries can bedefined so long as the specified functions and relationships thereof areappropriately performed. Alternatives (including equivalents,extensions, variations, deviations, etc., of those described herein)will be apparent to persons skilled in the relevant art(s) based on theteachings contained herein. Such alternatives fall within the scope andspirit of the disclosed embodiments.

FIG. 2 is a block diagram of an exemplary browser extension system 200,consistent with disclosed embodiments. As shown, browser extensionsystem 200 may include browser extension server 202 and browserextension application 204. Browser extension server 202 may include acommunication device 206, one or more processor(s) 208, and memory 210including one or more programs 212 and data 214. Browser extensionserver 202 may be configured to perform operations consistent withproviding browser extension application 204.

Browser extension server 202 may take the form of a server, generalpurpose computer, mainframe computer, or any combination of thesecomponents. Other implementations consistent with disclosed embodimentsare possible as well. Browser extension application 204 may take theform of one or more software applications stored on a computing device,such as browser extension application 106 stored on computing device 102described above.

Communication device 206 may be configured to communicate with one ormore computing devices, such as computing device 102. In someembodiments, communication device 206 may be configured to communicatewith the computing device(s) through browser extension application 204.Browser extension server 202 may, for example, be configured to provideto browser extension application 204 one or more regular expressionsthrough communication device 206. As another example, browser extensionserver 202 may be configured to receive from browser extensionapplication 204 one or more indications of unrecognized fields in webpages provided by the computing device(s) through communication device206. Communication device 206 may be configured to communicate otherinformation as well.

Communication device 206 may be further configured to communicate withone or more FSP systems, such as FSP system 112 described above. In someembodiments, the FSP system may provide a financial service accountassociated with a computing device, and communication device 206 may beconfigured to communicate with the FSP system(s) to generate a securetoken mapped to the financial service account associated with thecomputing device. Communication device 206 may be configured tocommunicate with the FSP system(s) in other manners. Communicationdevice 206 may be configured to communicate with other components aswell.

Processor(s) 208 may include one or more known processing devices, suchas a microprocessor from the Core™, Pentium™ or Xeon™ familymanufactured by Intel®, the Turion™ family manufactured by AMD™, the“Ax” (i.e., A6 or A8 processors) or “Sx” (i.e. S1, . . . processors)family manufactured by Apple™, or any of various processors manufacturedby Sun Microsystems, for example. The disclosed embodiments are notlimited to any type of processor(s) otherwise configured to meet thecomputing demands required of different components of browser extensionsystem 200.

Memory 210 may include one or more storage devices configured to storeinstructions used by processor(s) 208 to perform functions related todisclosed embodiments. For example, memory 210 may be configured withone or more software instructions, such as program(s) 212, that mayperform one or more operations when executed by processor(s) 208. Thedisclosed embodiments are not limited to separate programs or computersconfigured to perform dedicated tasks. For example, memory 210 mayinclude a single program 212 that performs the functions of browserextension system 200, or program(s) 212 may comprise multiple programs.Memory 210 may also store data 214 that is used by program(s) 212.

In certain embodiments, memory 210 may store sets of instructions forcarrying out the processes described below in connection with FIGS.4A-4B. Other instructions are possible as well. In general, instructionsmay be executed by processor(s) 208 to perform one or more processesconsistent with disclosed embodiments. In some embodiments, program(s)212 may include a regular expression generator 216 configured togenerate and/or update one or more regular expressions 218 for use bybrowser extension application 204 in detecting and/or automaticallypopulating fields in web pages. The regular expression(s) 218 may bestored in memory 210.

The components of browser extension system 200 may be implemented inhardware, software, or a combination of both hardware and software, aswill be apparent to those skilled in the art. For example, although oneor more components of browser extension system 200 may be implemented ascomputer processing instructions, all or a portion of the functionalityof browser extension system 200 may be implemented instead in dedicatedelectronics hardware.

In some embodiments, browser extension system 200 may also becommunicatively connected to one or more database(s) (not shown).Alternatively, such database(s) may be located remotely from browserextension system 200. Browser extension system 200 may becommunicatively connected to such database(s) through a network, such asnetwork 116 described above. Such database(s) may include one or morememory devices that store information and are accessed and/or managedthrough browser extension system 200. In some embodiments, one or bothof regular expression generator 216 and regular expression(s) 218 may beimplemented with a database(s). By way of example, such database(s) mayinclude Oracle™ databases, Sybase™ databases, or other relationaldatabases or non-relational databases, such as Hadoop sequence files,HBase, or Cassandra. Such database(s) may include computing components(e.g., database management system, database server, etc.) configured toreceive and process requests for data stored in memory devices of thedatabase(s) and to provide data from the database(s).

FIG. 3 is a block diagram of an exemplary computing device 300,consistent with disclosed embodiments. As shown, computing device 300may include communication device 302, display device 304, processor(s)306, and memory 308 including program(s) 310 and data 312. Program(s)310 may include, among others, web browser application 314 and browserextension application 316.

In some embodiments, computing device 300 may take the form of a desktopor mobile computing device, such as a desktop computer, laptop computer,smartphone, tablet, or any combination of these components.Alternatively, computing device 300 may be configured as any wearableitem, including jewelry, smart glasses, or any other device suitable forcarrying or wearing on a user's person. Other implementations consistentwith disclosed embodiments are possible as well. Computing device 300may, for example, be the same as or similar to computing device 102described above.

Communication device 302 may be configured to communicate with a browserextension server, such as browser extension servers 110 and 202described above. In some embodiments, communication device 302 may befurther configured to communicate with one or more merchant systems,such as merchant system 114 described above, and/or one or more FSPsystems, such as FSP system 112 described above. Communication device302 may be configured to communicate with other components as well.

Communication device 302 may be configured to provide communication overa network, such as network 116 described above. To this end,communication device 302 may include, for example, one or more digitaland/or analog devices that allow computing device 300 to communicatewith and/or detect other components, such as a network controller and/orwireless adaptor for communicating over the Internet. Otherimplementations consistent with disclosed embodiments are possible aswell.

Display device 304 may be any display device configured to displayinterfaces on computing device 300. The interfaces may include, forexample, web pages provided by computing device 300 through web browserapplication 116. In some embodiments, display device 304 may include ascreen for displaying a graphical and/or text-based user interface,including but not limited to, liquid crystal displays (LCD), lightemitting diode (LED) screens, organic light emitting diode (OLED)screens, and other known display devices. In some embodiments, displaydevice 304 may also include one or more digital and/or analog devicesthat allow a user to interact with computing device 300, such as atouch-sensitive area, keyboard, buttons, or microphones. Other displaydevices are possible as well. The disclosed embodiments are not limitedto any type of display devices otherwise configured to displayinterfaces.

Processor(s) 306 may include one or more known processing devices, suchas a microprocessor from the Core™, Pentium™ or Xeon™ familymanufactured by Intel™, the Turion™ family manufactured by AMD™, the“Ax” or “Sx” family manufactured by Apple™, or any of various processorsmanufactured by Sun Microsystems, for example. Processor(s) 306 may alsoinclude various architectures (e.g., x86 processor, ARM®, etc.). Thedisclosed embodiments are not limited to any type of processor(s)otherwise configured to meet the computing demands required of differentcomponents of computing device 300.

Memory 308 may include one or more storage devices configured to storeinstructions used by processor(s) 306 to perform functions related todisclosed embodiments. For example, memory 308 may be configured withone or more software instructions, such as program(s) 310, that mayperform one or more operations when executed by processor(s) 306. Thedisclosed embodiments are not limited to separate programs or computersconfigured to perform dedicated tasks. For example, memory 308 mayinclude a single program 310 that performs the functions of computingdevice 300, or program(s) 310 may comprise multiple programs. Memory 308may also store data 312 that is used by program(s) 310. In certainembodiments, memory 308 may store sets of instructions for carrying outthe processes described below in connection with FIG. 4C. Otherinstructions are possible as well. In general, instructions may beexecuted by processor(s) 306 to perform one or more processes consistentwith disclosed embodiments.

In some embodiments, program(s) 310 may include web browser application314. Web browser application 314 may be executable by processor(s) 306to perform operations including, for example, providing web pages fordisplay. The web pages may be provided, for example, via display device304. In some embodiments, the web pages may be associated with amerchant system, such as merchant system 114 described above. Webbrowser application 314 may be executable by processor(s) 306 to performother operations as well.

In some embodiments, program(s) 310 may further include a browserextension application 316. Browser extension application 316 may, forexample, be the same as similar to browser extension applications 106and 204 described above. Browser extension application 316 may beexecutable by processor(s) 306 to perform various operations including,for example, detecting and automatically populating transaction fieldsin web pages provided by computing device 300 through web browserapplication 314. Other instructions are possible as well. In general,instructions may be executed by processor(s) 306 to perform one or moreprocesses consistent with disclosed embodiments.

The components of computing device 300 may be implemented in hardware,software, or a combination of both hardware and software, as will beapparent to those skilled in the art. For example, although one or morecomponents of computing device 300 may be implemented as computerprocessing instructions, all or a portion of the functionality ofcomputing device 300 may be implemented instead in dedicated electronicshardware.

FIG. 4A is a flowchart of an exemplary browser extension process 400,consistent with disclosed embodiments. Browser extension process 400 maybe carried out by a browser extension server, such as browser extensionservers 110 and 202 described above, in connection with a browserextension application, such as browser extension applications 106, 204,and 316 described above.

In some embodiments, browser extension process 400 may include, at step402, generating a regular expression configured for use in detecting oneor more fields in one or more web pages. The regular expression may takeany of the forms described above. Generating a regular expression isfurther described in connection with FIG. 4B.

As shown in FIG. 4B, step 402 may involve determining that no regularexpression has been generated for a web page at sub-step 402A. The webpage may be, for example, a web page provided in a browser applicationexecuted at a client device, and a browser extension applicationexecuted at the client device may seek a regular expression from thebrowser extension server for the web page. As another example, the webpage may be a web page identified by browser extension server, e.g.,through a browse, sweep, crawl, or search of the Internet. As stillanother example, the web page may be a web page associated with amerchant system or other third-party, and the merchant or otherthird-party may provide the web page to the browser extension server.

In any case, the browser extension server may determine that nopreviously generated regular expression is available for the web page.For example, the browser extension server may search and/or provide aquery to data storage and/or a database associated with the browserextension server to determine whether a regular expression for the webpage is stored there. In some embodiments, the browser extension servermay determine that no regular expression has been generated for the webpage when no regular expression for the web page can be found in thedata storage and/or database.

At sub-step 402B, in response to determining that no regular expressionhas been generated for the web page, the browser extension server mayparse a programming language in which the web page is written toidentify at least one field in the web page. For example, the browserextension server may review the language of the web page to identifypatterns indicative of fields. In some embodiments, browser extensionserver may maintain and/or may access a number of predetermined patternsindicative of fields. The predetermined patterns may includealphanumeric patterns, data patterns, field type patterns, and/or datatype patterns. The browser extension server may, for example, comparethe predetermined patterns to the web page in order to identify thefield(s) in the web page. In some embodiments, identifying the field(s)may involve identifying a location of the field(s) within the web pageas well as a field type and/or data type for use in populating thefield.

At sub-step 402C, the browser extension server may generate a regularexpression for the web page. The regular expression may indicate theidentified fields. Further, the regular expression may indicate, foreach identified field, a type of data with which the field is to bepopulated. The generated regular expression may be stored in the datastorage and/or the database.

Returning to FIG. 4A, in some embodiments, browser extension process 400may include, at step 404, providing the regular expression to a browserextension application, such as browser extension applications 106, 204,and 316 described above. The browser extension application may be, forexample, executed at a computing device, such as computing devices 102and 300 described above.

In some embodiments, browser extension process 400 may include, at step406, executing the browser extension application to detect at least onetransaction field in a web page based on the regular expression andautomatically populate the at least one transaction field with storedtransaction data.

The web page may be, for example, a web page provided by the computingdevice through a web browser application, such as web browserapplications 108 and 314 described above. Detecting the transactionfield(s) may involve, for example, detecting patterns within the HTML orXML used to create the web page. Transaction fields may be detected inother manners as well.

The transaction field(s) may include, for example, any field provided inthe web page into which a user of the computing device may enterinformation, such as a text box, a drop-down menu, or any other visualor textual selection or input element in the web page. Exampletransaction fields may include, for instance: account fields into whicha user may input account information, preferences fields into which auser may input preferences for an account, payment fields into which auser may input payment information for a purchase transaction, shippingfields into which a user may input shipping information for a purchasetransaction, and/or preferences fields into which a user may inputpreferences for a purchase transaction. Other transaction fields arepossible as well.

In some embodiments, the web browser application may execute the regularexpression to detect at least one additional element in the web pages.The additional element may include any element in the web page. Exampleelements may include, for instance: titles, descriptions, images,headers, and objects in the web page. Other elements are possible aswell.

In some embodiments, the web browser application may automaticallypopulate the at least one transaction field with stored transactiondata. The stored transaction data may be any data associated by the userand maintained by the browser extension application and/or the browserextension server. Example stored transaction data may include, forinstance: account data, such as login credentials and/or accountpreferences, payment data, such as data associated with a financialservice product (e.g., credit card or debit card) or financial serviceaccount, and shipping data, such as a shipping address and/or shippingpreferences. Other stored transaction data is possible as well.

In some embodiments, the stored transaction data may be associated witha computing device executing the browser extension application and/or auser of the computing device. Alternatively or additionally, in someembodiments the stored transaction data may be stored at the computingdevice or at the browser extension server. Still alternatively oradditionally, in some embodiments the stored transaction data may bereceived from a user of the computing device through the computingdevice and/or another device. The stored transaction data may take otherforms as well.

In some embodiments, the browser extension application may, prior toautomatically populating the detected at least one transaction field,authenticate a user of the computing device. The browser extensionapplication may authenticate the user by, for example, receiving logincredentials from the user, such as a username and password. In someembodiments, once the browser extension application has authenticatedthe user, the browser extension application may maintain a login statefor the user during a predetermined timeout period, such that the userneed not be authenticated each time the browser extension application isused during the predetermined timeout period.

In some embodiments, the browser extension application may seekconfirmation of the automatically populated stored transaction datafrom, for example, a user of the computing device. Alternatively oradditionally, the browser extension application may be configured toreceive from a user updates and/or changes to the stored transactiondata. In some embodiments, the browser extension application may beconfigured to update and/or change the stored transaction data inresponse to such an update and/or change from the user.

By automatically populating the detected at least one transaction field,the browser extension application may improve efficiency of web pagepopulation on the whole, thereby reducing or eliminating inefficientcommunications, bandwidth consumption, and processor utilizationnecessitated when a user incorrectly populates a field in the web page(e.g., through a misunderstanding or typographical error) and mustreplace or re-enter information in the field, requiring the replacementinformation to be retransmitted and reprocessed.

In some embodiments, browser extension process 400 may include, at step408, detecting, through the browser extension application, at least oneunrecognized field in the web page. The unrecognized field may be anyfield for which, through execution of the regular expression, thebrowser extension application is unable to recognize a field type (e.g.,the nature of the field) and/or data type (e.g., the type of informationthe field is intended to receive). In some embodiments, the at least oneunrecognized field may include a transaction field. Alternatively oradditionally, in some embodiments the at least one unrecognized fieldmay include an additional element in the web page. The unrecognizedfield may take other forms as well.

In some embodiments, browser extension process 400 may include, at step410, in response to detecting the unrecognized field, providing, throughthe browser extension application, suggested transaction data. In someembodiments, the suggested transaction data may be, for example, storedtransaction data, and may take any of the forms described above forstored transaction data. In some embodiments, for example, the suggestedtransaction data may include stored transaction data not used toautomatically populate a detected transaction field. Alternatively oradditionally, the suggested transaction data may include data having adata type and/or field type compatible with the field. For example, foran unrecognized field compatible with a data type specifying a fivedigit numeric input, the suggested transaction data may include zip codedata. As another example, for an unrecognized field compatible with adata type specifying an alphanumeric string, the suggested transactiondata may include a name or address.

In some embodiments, providing the suggested transaction data mayinvolve, for example, displaying one or more prompts, such as a pop-upnotification or other graphical indication, that includes the suggestedtransaction data. Alternatively or additionally, in some embodimentsproviding the suggested transaction data may involve, for instance,providing an option for a user of the computing device to copy some orall of the suggested transaction data. The suggested transaction datamay be provided in other manners as well.

In some embodiments, browser extension process 400 may include, at step412, detecting, through the browser extension application, manualpopulation of the at least one unrecognized field with the suggestedtransaction data. In some embodiments, the manual population mayinclude, for example, a user pasting the suggested transaction data intothe at least one unrecognized field. Detecting the manual population mayinvolve, for example, detecting which suggested transaction data waspopulated into an unrecognized field. The manual population may bedetected in other manners as well.

In some embodiments, browser extension process 400 may further includeassociating the at least one unrecognized field with a field type basedon the manual population. In some embodiments, browser extension servermay make the association based on information received from a computingdevice executing the browser extension application. Alternatively oradditionally, the computing device may determine the association andprovide it to the browser extension server, as discussed below.

In some embodiments, an unrecognized field may then become recognizedbased on, for example, the suggested transaction data that was manuallypopulated into the unrecognized field. For example, if the suggestedtransaction data that was manually populated into the unrecognized fieldwas a ZIP™ code, the unrecognized field may become recognized as a ZIPcode field, which may, for example, be part of a shipping address. Asanother example, if the suggested transaction data that was manuallypopulated into the unrecognized field was a routing number, theunrecognized field may become recognized to be a routing number field,which may, for example, be part of payment information. Other examplesare possible as well.

In some embodiments, browser extension process 400 may include, at step414, receiving from the browser extension application an indication ofthe at least one unrecognized field. The indication may describe, forexample, the unrecognized field, the suggested transaction data that wasmanually populated into the unrecognized field, and/or association dataassociating the unrecognized field with field type(s) based on themanual population. For example, if the unrecognized field becomesrecognized as a ZIP code field, the indication may describe theunrecognized field, that the unrecognized field became recognized as aZIP code field, and/or the ZIP code that was manually populated into thefield. As another example, if the unrecognized field becomes recognizedas a routing number, the indication may describe the unrecognized field,that the unrecognized field was recognized to be a routing number,and/or the routing number that was manually populated into the field.Other examples are possible as well.

In some embodiments, the browser extension server may receive, from thebrowser extension application, programming language describing the webpage. The programming language may, for example, describe theunrecognized field. Alternatively or additionally, the programminglanguage may, for example, describe one or more additional elements inthe web page. The additional elements may take any of the formsdescribed above. The programming language may be any language used tocreate a web page. In some embodiments, the programming language may beHTML or XML. Other programming languages are possible as well. Theprogramming language may be received together with and/or separatelyfrom the indication of the unrecognized field. In some embodiments, theunrecognized field may be indicated using, for example, “ID” and/or“NAME” attributes for fields within the programming language.

In some embodiments, browser extension process 400 may include, at step416, generating an updated regular expression configured to detect theat least one unrecognized field in the web page. The updated regularexpression may be generated based on, e.g., the association data. Theupdated regular expression may be configured to detect a plurality offields in a web page, including the at least one unrecognized field inthe web page. In some embodiments, the updated regular expression mayinclude an updated sequence of characters or search pattern. The updatedregular expression may take other forms as well.

In some embodiments, the updated regular expression may be generated inresponse to receiving the indication from the browser extensionapplication. Alternatively, in some embodiments the updated regularexpression may be generated in response to receiving a query from thecomputing device through the browser extension application, such as aquery for an updated regular expression. Still alternatively, in someembodiments, the updated regular expression may be generated accordingto a periodic schedule. For example, the browser extension server maygenerate regular expressions periodically, and the updated regularexpression may be generated as a subsequent periodic generation. Theupdated regular expression may be generated in other manners as well.

In some embodiments, browser extension process 400 may include, at step418, providing the updated regular expression to the browser extensionapplication. Upon execution, the updated regular expression may enablethe browser extension application to detect and recognize previouslyunrecognized field(s). In some embodiments, the updated regularexpression may be provided in response to receiving the indication fromthe browser extension application. Alternatively, in some embodimentsthe updated regular expression may be provided in response to receivinga query from the computing device through the browser extensionapplication, such as a query for an updated regular expression. Stillalternatively, in some embodiments, the updated regular expression maybe provided according to a periodic schedule. For example, the browserextension server may provide regular expressions to the browserextension application periodically, and the updated regular expressionmay be provided as a subsequent periodic provision. The updated regularexpression may be provided in other manners as well.

By providing the updated regular expression to the browser extensionapplication, the browser extension server may improve the ability of thebrowser extension application to correctly automatically populate fieldsin the web page. In this manner, the updated regular expression maypermit the browser extension application to reduce or eliminateinefficient communications, bandwidth consumption, and processorutilization necessitated at the device and at the server providing theweb page when conventional browser applications incorrectly identifyand/or populate fields in web pages.

FIG. 4C is a flowchart of an exemplary browser extension process 422,consistent with disclosed embodiments. Browser extension process 422 maybe carried out by a browser extension application, such as browserextension applications 106, 204, and 316 described above, in connectionwith a browser extension server, such as browser extension servers 110and 202 described above. The browser extension application may beexecuted at, for example, a computing device, such as computing devices102 and 300 described above.

In some embodiments, browser extension process 422 may include, at step424, receiving a regular expression configured to detect one or morefields in one or more web pages. The regular expression may be receivedfrom, for example, the browser extension server. The regular expressionmay take any of the forms described above.

In some embodiments, browser extension process 422 may include, at step426, executing the regular expression to detect at least one transactionfield in a web page and automatically populate the at least onetransaction field with stored transaction data. In some embodiments, theweb page may be, for example, a web page provided by a web browserapplication executed at the computing device. The transaction fields andthe stored transaction data may take any of the forms described above.

By automatically populating the detected at least one transaction field,the browser extension application may improve efficiency of web pagepopulation on the whole, thereby reducing or eliminating inefficientcommunications, bandwidth consumption, and processor utilizationnecessitated when a user incorrectly populates a field in the web page(e.g., through a misunderstanding or typographical error) and mustreplace or re-enter information in the field.

In some embodiments, browser extension process 422 may include, at step428, detecting at least one unrecognized field in the web page. Theunrecognized field may be any field that, through execution of theregular expression, the browser extension application is unable torecognize.

In some embodiments, browser extension process 422 may include, at step430, in response to detecting the unrecognized field, providingsuggested transaction data. The suggested transaction data may take anyof the forms described above and may be provided in any of the mannersdescribed above.

In some embodiments, browser extension process 422 may include, at step432, detecting manual population of the at least one unrecognized fieldwith the suggested transaction data. In some cases, the browserextension process 422 may further include, based on the manualpopulation, associating the at least one unrecognized field with a fieldtype. As discussed above, alternatively or additionally, the associationmay be made at browser extension server. The manual population may takeany of the forms described above, and the manual population and therecognition may be performed in any of the manners described above.

In some embodiments, browser extension process 422 may include, at step434, providing an indication of the at least one unrecognized field. Theindication may be provided to, for example, the browser extensionserver. In some embodiments, browser extension process 422 may include,at step 436, receiving an updated regular expression configured todetect and recognize the at least one unrecognized field in the webpage. The updated regular expression may take any of the forms describedabove. In some embodiments, the updated regular expression may bereceived from, for example, the browser extension server. In someembodiments, the browser extension application may be further configuredto detect a “Checkout” stage of a purchase transaction, such as a“Shopping Cart” or page in which a purchase transaction may becompleted. In some embodiments, in response to detecting the “Checkout”stage, the browser extension application may prompt the user to employthe browser extension application in making the purchase transaction.

While methods 400 and 422 described a single regular expression and asingle updated regular expression, it will be understood that, in someembodiments, browser extension server may generate more than one regularexpression and/or updated regular expression, and browser extensionapplication may be configured to execute more than one regularexpression and/or updated regular expression. In some embodiments, morethan one regular expression may be used to detect and/or automaticallypopulate transaction fields in a web page.

FIGS. 5A-5C illustrate exemplary interfaces on computing devices,consistent with disclosed embodiments. In some embodiments, as shown inFIG. 5A, a computing device, such as computing devices 102 and 300described above, may be configured with a web browser application 500,such as web browser applications 108 and 314 described above. Thecomputing device may be configured to provide, through the web browserapplication 500, a web page 502.

In some embodiments, the web page 502 may be associated with a merchant.For example, the web page 502 may be an online retail web page throughwhich a user of the computing device may engage in a purchasetransaction to purchase a good from the merchant. In some embodiments,the web page may be provided by a merchant system, such as merchantsystem 114 described above. Other web pages are possible as well.

In some embodiments, as shown in FIG. 5A, a user of the computing devicemay be prompted to enter transaction data into one or more transactionfields 504, 506, and 508 on the web page 502. For example, during a“Checkout” stage of a purchase transaction, a user of the computingdevice may be prompted to enter “Billing Information” and “ShippingInformation” into transaction fields 504, 506, and 508 on the web page502. Other examples are possible as well. While certain transactionfields are shown, other transaction fields are possible as well.

In some embodiments, a browser extension server and/or a browserextension application executed at the computing device may execute aregular expression to detect at least one of transaction fields 504,506, and 508. For example, the regular expression may be executedthrough the browser extension application to detect at least one oftransaction fields 504, 506, and 508.

In some embodiments, the browser extension server and/or the browserextension application executed at the computing device may execute theregular expression to automatically populate the detected transactionfield(s) with stored transaction data, as shown in FIG. 5B. For example,as shown, detected transaction fields 504 and 508 may be automaticallypopulated with stored transaction data. In some embodiments theautomatic population of a transaction field may involve populating thetransaction field with text or another graphical indication representingthe stored transaction data. For example, as shown, detected transactionfield 504 may be automatically populated with text representing storedtransaction data indicating a “Cardholder Name,” while detectedtransaction field 508 may be automatically populated with textrepresenting stored transaction data indicating a “Recipient Name.”Other examples are possible as well.

In some embodiments, browser extension server and/or the browserextension application executed at the computing device may detect atleast one unrecognized field. For example, as shown, transaction field506 may be unrecognized. In response to detecting the unrecognizedfield, browser extension server and/or the browser extension applicationexecuted at the computing device may provide suggested transaction data510. The suggested transaction data 510 may include, for example, storedtransaction data, such as stored transaction data not used toautomatically populate detected transaction fields 504 and 508. In someembodiments, providing the suggested transaction data 510 may involveproviding an option for a user of the computing device to copy some orall of the suggested transaction data 510, as shown. The suggestedtransaction data 510 may be provided in other manners as well.

In some embodiments, browser extension server and/or the browserextension application executed at the computing device may detect manualpopulation of the unrecognized field 506 with at least a portion of thesuggested transaction data 510, as shown in FIG. 5C. In someembodiments, the manual population may include, for example, a userpasting the suggested transaction data 510 into the unrecognized field506. Detecting the manual population may involve, for example, detectingwhich suggested transaction data 510 was populated into the unrecognizedfield 506. For example, detecting the manual population of unrecognizedfield 506 may involve detecting that the suggested transaction data 510“78750” was pasted by the user into the unrecognized field 506 labeled“ZIP Code.”

In some embodiments, a user may manually populate unrecognized field 506without copying, pasting, and/or receiving from browser extensionapplication any suggested transaction data. For example, in someembodiments, a user may manually populate unrecognized field 506 bytyping text into and/or otherwise populating unrecognized field 506.Manual population may take other forms as well.

In some embodiments, browser extension server and/or the browserextension application executed at the computing device may, based on themanual population, recognize the unrecognized field 506. Theunrecognized field 506 may be recognized based on, for example, thesuggested transaction data 506 that was manually populated into theunrecognized field 506. For example, as shown, the suggested transactiondata 510 manually populated into the unrecognized field 506 may be a ZIPcode, and the unrecognized field 506 may be recognized to be a ZIP codefield, which may, for example, be part of a shipping address. Otherexamples are possible as well. In some embodiments, the browserextension application executed at the computing device may provide anindication of the at least one unrecognized field 506 to the browserextension server.

While several example interfaces are shown in FIGS. 5A-5C, it will beunderstood that the interfaces shown are merely examples and that otherinterfaces are possible as well.

FIG. 6 is a flowchart of a browser extension message stream 600,consistent with disclosed embodiments. It will be understood thatmessages in the browser extension message stream 600 are merelyillustrative. Messages may be transmitted among the components and/orother components in other manners as well, and where a single message isshown, more messages are possible The computing device may, for example,be the same as or similar to computing devices 102 and 300 describedabove. In some embodiments, the computing device may be configured toexecute a browser extension application, such as browser extensionapplications 106, 204, and 316 described above. The browser extensionserver may, for example, be the same as or similar to browser extensionservers 110 and 202 described above.

In some embodiments, browser extension message stream 600 may includethe browser extension server providing a regular expression to thecomputing device, as illustrated by message 602. The regular expressionmay be executed through the browser extension application at thecomputing device to detect and manually populate at least onetransaction field in a web page.

In some embodiments, the browser extension application may detect atleast one unrecognized field in the web page and, in response, thebrowser extension application may provide suggested transaction data toa user of the computing device. The browser extension application maydetect manual population of the at least one unrecognized field and,based on the manual population, recognize the at least one unrecognizedfield. In some embodiments, browser extension message stream 600 mayinclude the browser extension application providing to the browserextension server an indication of the at least one unrecognized field,as illustrated by message 604.

The browser extension server may be configured to generate an updatedregular expression. Alternatively or additionally, in some embodiments,the browser extension server may generate the updated regular expressionin connection with a database as shown. For example, the browserextension server may provide the indication to the database, asillustrated by message 606, and may receive the updated regularexpression from the database, as illustrated by message 608. In someembodiments, browser extension message stream 600 may include providingthe updated regular expression to the computing device, as illustratedby message 610.

In some embodiments, the updated regular expression may be generatedusing, in addition to the indication of the at least one transactionfield, other information detected by the browser extension application.For example, the updated regular expression may be generated usingindications of and/or programming language describing web page(s) and/orone or more additional elements in the web page(s).

In some embodiments, the updated regular expression may be generatedusing information detected by the browser extension application during amerchant-provided payment process. FIGS. 7A-7C illustrate exemplaryinterfaces including a merchant-provided payment process on computingdevices, consistent with disclosed embodiments. In some embodiments, asshown in FIG. 7A, a computing device, such as computing devices 102 and300 described above, may be configured with a web browser application700, such as web browser applications 108 and 314 described above. Thecomputing device may be configured to provide, through the web browserapplication 700, a web page 702.

In some embodiments, the web page 702 may be associated with a merchant.For example, the web page 702 may be an online retail web page throughwhich a user of the computing device may engage in a purchasetransaction to purchase goods and/or services from the merchant. In someembodiments, the web page may be provided by a merchant system, such asmerchant system 114 described above. Other web pages are possible aswell.

In some embodiments, as shown in FIG. 7A, during a “Checkout” stage of apurchase transaction, a user of the computing device may be prompted toenter “Billing Information” and “Shipping Information” into transactionfields 704 and 706 on the web page 702. While certain transaction fieldsare shown, other transaction fields are possible as well.

In some embodiments, the merchant associated with the web page 702 mayprovide a merchant-provided payment process, as shown in FIG. 7B. Insome embodiments, the merchant-provided payment process may permit auser to engage in purchase transactions to purchase the merchant's goodsor services. In some embodiments, the merchant-provided payment processmay be provided by the merchant in connection with one or more financialservice providers. As part of the merchant-provided payment process, theweb page 702 may provide prompt a user to login to the merchant-providedpayment process. For example, as shown, the web page 702 may include apop-up notification 708. When a user logs into the merchant-providedpayment process, the merchant-provided payment process may automaticallypopulate at least one of transaction fields 704 and 706 in the web page702, as shown in FIG. 7C.

In some embodiments, the merchant-provided payment process may involvetransmission of messages or other information between the computingdevice providing the web page 702 and the merchant and/or financialservice provider(s) providing the merchant-provided payment process. Forexample, the computing device and the merchant and/or financial serviceprovider(s) may exchange request and/or get messages, such as hypertexttransfer protocol (HTTP) POST messages. Other messages are possible aswell. As an example, the merchant-provided payment process may involvetransmission of a message that includes an indication of transactionfields 704 and/or 706.

In some embodiments, a browser extension application executed at thecomputing device may be configured to capture and/or review messagesexchanged in connection with the merchant-provided payment process. Insome embodiments, for example, the browser extension application maydetect at least one additional transaction field in a message. Forexample, the browser extension application may detect transaction fields704 and/or 706 in the message. In some embodiments, the browserextension application may provide, to the browser extension server, anindication of the transaction field(s) detected in the message, such astransaction fields 704 and/or 706. Alternatively or additionally, insome embodiments the browser extension application may provide to thebrowser extension server all or part of the message, e.g., in theprogramming language. In some embodiments, the browser extension servermay generate an updated regular expression based, at least in part, onthe indication of the transaction fields and/or the programming languageof the message.

As noted above, in some embodiments a browser extension server may beconfigured to execute, through a browser extension application, aregular expression to detect and automatically populate transactionfields in a web page. In some embodiments, at least one of the detectedtransaction fields may be, for example, a payment field. In someembodiments, automatic population of a payment field may involvegeneration of a secure token, virtual account number, or other paymentdata.

While several exemplary interfaces are shown in FIGS. 7A-7C, it will beunderstood that the interfaces shown are merely examples and that otherinterfaces are possible as well.

FIGS. 8A-8C illustrate exemplary interfaces including a secure tokengeneration process on computing devices, consistent with disclosedembodiments. While a token is used for purposes of illustration, it willbe understood that virtual account numbers and/or other payment data arepossible as well. As shown in FIG. 8A, a computing device may execute aweb browser application 800. In some embodiments, as shown in FIG. 8A, acomputing device, such as computing devices 102 and 300 described above,may be configured with a web browser application 800, such as webbrowser applications 108 and 314 described above. The computing devicemay be configured to provide, through the web browser application 800, aweb page 802. In some embodiments, the web page 802 may be associatedwith a merchant. For example, the web page 802 may be an online retailweb page through which a user of the computing device may engage in apurchase transaction to purchase a good or service from the merchant. Insome embodiments, the web page 802 may be provided by a merchant system,such as merchant system 114 described above. Other web pages arepossible as well.

In some embodiments, as shown in FIG. 8A, during a “Checkout” stage ofthe purchase transaction, a user of the computing device may be promptedto enter “Billing Information” and “Shipping Information” intotransaction fields on the web page 802. For example, the user may beprompted to enter payment information into transaction fields 804 and806, as shown. While certain transaction fields are shown, othertransaction fields are possible as well.

In some embodiments, using a regular expression, a browser extensionserver and/or a browser extension application executed at the computingdevice may detect and automatically populate the payment fields 804 and806. In some embodiments, automatically populating one or more oftransaction fields 804 and 806 may involve generate a secure token, asshown in FIGS. 8B-8C.

In some embodiments, the browser extension server and/or a browserextension application may provide to the user an offer to generate asecure token. For example, the browser extension application may providea pop-up notification 808, as shown in FIG. 8B. The offer may beprovided in other manners as well. In some embodiments, the offer mayinclude, for example, an opportunity for a user of the computing deviceto select a financial service product (e.g., a credit card or debitcard) or financial service account for which to create a secure token,as shown. In some embodiments, in response to receiving an acceptance ofthe offer from the user, the browser extension server may generate asecure token. Alternatively, in some embodiments, the browser extensionserver and/or computing device executing browser extension applicationmay generate the secure token automatically, without providing an offerto or receiving an acceptance from the user. The secure token may begenerated in other manners as well.

The secure token may be provided to the computing device, e.g., throughthe browser extension application. As shown in FIG. 8C, in someembodiments, the transaction field 804 in the web page 802 may beautomatically populated with the secure token 810. For example, in someembodiments, the browser extension server may provide the secure token810 to the browser extension application, and the browser extensionapplication automatically populate the transaction field 804 with thesecure token 810. The transaction field 804 may be populated in othermanners as well. Transaction field 806 may be populated by the securetoken 810 as well, manually by the user, or through a regular expressionexecuted by the browser extension application, as described above.

In some embodiments, the computing device may provide the secure token810 to effectuate a purchase transaction in which a user of thecomputing device purchases a good or service from the merchant providingthe web page 802. In some embodiments, upon receiving the secure token814, the merchant may seek authorization of the purchase transactionfrom a financial service provider by providing the secure token 810 toan FSP system, such as FSP system 112 described above, associated withthe financial service provider. The financial service provider may usethe secure token 810 to authenticate the computing device and authorizethe purchase transaction.

While several example interfaces are shown in FIGS. 8A-8C, it will beunderstood that the interfaces shown are merely examples and that otherinterfaces are possible as well.

FIG. 9 is a flowchart of a browser extension message stream 900,consistent with disclosed embodiments. It will be understood thatmessages in the browser extension message stream 900 are merelyillustrative. Messages may be transmitted among the components and/orother components in other manners as well, and where a single message isshown, more messages are possible. The computing device, browserextension server, FSP system, and merchant system shown in FIG. 9 may bethe same as or similar to, for example, computing devices 102 and 300,browser extension servers 110 and 202, FSP system 112, and merchantsystem 114, respectively.

As shown, the computing device may send a message 902 to the browserextension server. The message 902 may include, for example, anindication of a financial service account associated with the computingdevice. The indication of the financial service account may be, forexample, a personal account number or PAN (e.g., a 16-digit PAN oftenprinted on a financial service product), routing information, or otheridentifier of a financial service account. The indication of thefinancial service account may take other forms as well. In someembodiments, a user may operate the computing device to provide theindication such that a browser extension application and/or the browserextension server may subsequently coordinate with the FSP system togenerate and provide a secure token mapped to the underlying financialservice account, as described below. While a token is used for purposesof illustration, it will be understood that a virtual account numberand/or other payment data are possible as well.

Thereafter, the computing device may send a message 904 to the browserextension server. The message 904 may indicate, for example, atransaction field in a web page, such as an online retail web pagethrough which a user of the computing device may engage in a purchasetransaction to purchase goods or services from a merchant associatedwith the merchant system.

Through messages 906 and 908, browser extension server and/or the FSPsystem may generate a secure token. The FSP system may, for example, beassociated with a financial service provider that provides the financialservice account associated with the computing device.

With message 910, browser extension server may provide the secure tokento the computing device. In some embodiments, the payment field may beautomatically populated with the secure token.

The computing device may send the secure token to the merchant systemthrough message 912. For example, the computing device may provide thesecure token to effectuate a purchase transaction to purchase goods orservices from the merchant associated with the merchant system.

To complete the purchase transaction, the merchant system and the FSPsystem may authorize the purchase transaction through messages 914 and916. For example, the merchant system may provide the secure token tothe FSP system with message 914, and the FSP system may provide anauthorization and/or payment to the merchant system through message 916.

In some embodiments, the secure token may map directly (that is, withoutany intermediary) to the financial service account. In theseembodiments, when the secure token is provided to the merchant, themerchant may receive payment directly from the financial serviceaccount, rather than from any intermediary. Such direct mapping mayenable return processing. For example, where a good was purchased from amerchant during a purchase transaction involving a secure token, whenthe good is returned the payment made for the good may be returneddirectly to the financial service account by the merchant. Otherexamples are possible as well.

In some embodiments, the disclosed browser extension server and/orcomputing device executing browser extension application may provideadditional functionalities. For example, in some embodiments, thebrowser extension server and/or computing device executing browserextension application may be configured to provide real-time,user-targeted coupons for use in purchase transactions. For example, acomputing device may provide, through a web browser application, webpages associated with merchants. As the user browses the web pages, thebrowser extension application may detect and store data describing theuser's browsing history including, for example, whether the user hasvisited and/or made purchases on merchants' web pages. In someembodiments, the browser extension application may be associated withand/or may have access to data gathered by a financial service provider.The data gathered by the financial service provider may describe theuser's purchasing history, including, for example, at which merchantsthe user has made purchases, when and/or how often the user has madepurchases at the merchants, and/or an amount of money the user has spentat the merchants.

Based on the user's browsing history and purchasing history, the browserextension server and/or computing device executing browser extensionapplication, either alone or in connection with the financial serviceprovider, may generate and provide to the user real-time, user-targetedcoupons. For example, based on the user's browsing history andpurchasing history, a coupon for use at a merchant may be generated.When the user visits the merchant's web page, the coupon may be providedto the user by the browser extension application.

In some embodiments, the browser extension server and/or computingdevice executing browser extension application may be configured tocollect information that enables the financial service provider and/orthe merchant to track usage of the real-time, user-targeted coupons. Forexample, in some embodiments, when the user uses a coupon at amerchant's web page, the browser extension application may detect a“receipt” or “confirmation” page concluding a purchase transaction atthe web page. In some embodiments, the browser extension application maycapture a “snapshot” of the page, from which the browser extensionapplication and/or browser extension server may detect Stock KeepingUnit (SKU) data identifying a good or service purchased from themerchant, a timestamp for the purchase transaction, a method of paymentused for the purchase transaction, and any coupons used in the purchasetransaction. The browser extension application may detect otherinformation as well. In some embodiments, the browser extensionapplication may provide the information to the financial serviceprovider.

The financial service provider may be configured to determine, based onthe information collected by the browser extension application, usageinformation describing usage of the real-time, user-targeted coupons.For example, the financial service provider may determine which user wasprovided the coupon, which user presented the coupon during the purchasetransaction, and which goods or services were purchased using thecoupon. In some embodiments, the financial service provider may furtherdetermine, based on the information collected by the browser extensionapplication, which goods or services the user has purchased from themerchant's web page, when and/or how often the user has made purchasesat the merchant's web page, and/or an amount of money the user has spentat the merchant's web page. In some embodiments, the financial serviceprovider may be configured to provide some or all of the determinedusage information to the merchant for use by the merchant. Thedetermined usage information may be provided to the merchant as, forexample, a dashboard or other interactive display through which themerchant may access the determined usage information. The determinedusage information may be provided in other manners as well.

In some embodiments, the determined usage information may be determinedby the merchant to, for example, verify real-time, user-targetedcoupons. For example, when a user presents a coupon to the merchant, themerchant may determine, based on the determined usage information,whether the coupon has previously been presented to the merchant. Ifnot, the coupon may be verified.

Another functionality that may be provided by the disclosed browserextension server and/or computing device executing browser extensionapplication may be merchant rating. FIG. 10 illustrates an exemplaryinterface 1000 including a merchant rating process on computing devices,consistent with disclosed embodiments.

In some embodiments, the browser extension application may beconfigured, when a user visits a web page 1002 associated with amerchant, to provide the web address 1004 (e.g., uniform resourcelocator) to the browser extension server. The browser extension serverand/or database may maintain merchant identifiers associated with webaddresses. In some embodiments, the merchant identifiers may beassociated with the web addresses based on, for example, prior purchasetransactions. For example, when a purchase transaction occurs at the webpage 1002, the merchant identifier may be determined based on thepurchase transaction and associated with the web address 1004 in thebrowser extension server and/or database.

The browser extension server and/or another database may additionallymaintain, for each merchant identifier, purchase transaction data forpurchases made at the merchant. The purchase transaction data may be anydata indicating whether the merchant is a safe, reliable merchant atwhich to make purchases. The purchase transaction data may include, forexample, data regarding disputes, returns, fraud claims, and/or repeatpurchases made at the merchant. Other purchase transaction data ispossible as well. In some embodiments, the browser extension serverand/or database may further include and/or have access to merchant datafrom one or more other sources, such as the Better Business Bureau® oranother consumer organization, one or more security providers, oranother source. In some embodiments, based on the purchase transactiondata and/or merchant data, each merchant may be rated according to howsafe and reliable the merchant is. For example, the merchant may begiven a rating of positive, negative, or neutral. Other ratings arepossible as well. In some embodiments, the ratings may be based on acomparative analysis across similar merchants (e.g., as determined basedon merchant category codes, institutional knowledge, and/or externaldata on merchant categorizations). In some embodiments, a merchant mayhave a rating for each of a number of categories, such as a disputecategory, a return category, a repeat purchases category, and a fraudcategory. Other categories are possible as well. In some embodiments,the browser extension server, the database, and/or another entity mayemploy predictive modeling to determine a rating for each merchant basedon aggregated assessments of a plurality of merchants and web pages.

In response to receiving the web address 1004 from the browser extensionapplication, the browser extension server and/or database may search fora merchant identifier associated with the web address 1004 and providethe purchase transaction data and/or the merchant data for the merchantidentifier to the browser extension application. Based on the purchasetransaction data and/or the merchant data, the browser extensionapplication may provide, in the web page 1002, an indication of whetherthe merchant is a safe and reliable merchant at which to make purchases.The indication may take the form of, for example, a pop-up notification1006 in the web page 1002. Other indications are possible as well. Insome embodiments, the browser extension application may be furtherconfigured to relay messages from the merchant to the user. The messagesmay take the form of, for example, pop-up notifications in the web page1002. Other messages are possible as well.

Yet another functionality that may be provided by the disclosed browserextension server and/or computing device executing browser extensionapplication is a cross-process functionality. Some web pages may providea process within the web page. For example, some web pages associatedwith merchants may provide a merchant-provided payment process withinthe web page. Other processes are possible as well.

A user may complete a registration process with the browser extensionapplication in which the user provides login credentials, preferences,and other information, such as payment information or shippinginformation, associated with the user. When a user logs in to thebrowser extension application, the browser extension application mayprovide the login credentials, preferences, and other information to thebrowser extension server, and the browser extension server may maintaina login state for the user.

When the user visits a web page providing a process in which the userwishes to partake, the browser extension application may instruct theweb page to request the user's login credentials from the browserextension server. When the web page requests the user's logincredentials from the browser extension, the browser extension server mayrespond to the web page that the user is already logged in, based on themaintained login state. Further, the browser extension server mayprovide the preferences and/or other information to the web page for usein the process. For example, if the process is a merchant-providedpayment process, the browser extension server may provide paymentinformation and/or shipping information to the web page for use in themerchant-provided payment process.

In some embodiments, the browser extension application may enhancesecurity of the process provided by the web page by requiringauthentication of the user through a computing device other than thecomputing device on which the web page is displayed. For example, a usermay be required to provide authenticating information, such as afingerprint, to another computing device, such as a mobile device,before the process is carried out. Other examples are possible as well.

Still another functionality that may be provided by the disclosedbrowser extension server and/or computing device executing browserextension application is a transaction history. In some embodiments, thebrowser extension application may maintain a transaction historydetailing purchase transactions made by a user. In some embodiments,each purchase transaction may identify a secure token generated for thepurchase transaction.

Another functionality that may be provided by the disclosed browserextension server and/or computing device executing the browser extensionapplication is notifications. In some embodiments, the browser extensionapplication may be configured to provide a user with a notification,such as a pop-up notification in a web page, each time a purchasetransaction is completed, whether in a web page at the computing device,at another computing device, or in a physical merchant. Alternatively oradditionally, in some embodiments, the browser extension application maybe configured to provide a user with a notification, such as a pop-upnotification in a web page, each time a secure token is generated. Insome embodiments, the browser extension application may be associatedwith a financial service provider, and the financial service providermay notify the browser extension application of each purchasetransaction as it is completed and/or each secure token as it isgenerated. The browser extension server and/or computing deviceexecuting the browser extension application may provide additionalfunctionalities as well.

In some embodiments, various features of the browser extension systemmay be activated, deactivated, and/or customized through a browserextension application control panel. For example, such a control panelmay enable a user to provide indications of financial service accountsassociated with the user, including a default financial service account,and manage existing secure tokens. As another example, such a controlpanel may enable a user to add special occasions and reminders forfriends and/or family, generate a secure token to share with friendsand/or family, turn on or off notifications within the browser extensionapplication, turn on or off functionalities of the browser extensionserver and/or computing device executing the browser extensionapplication, and turn on or off availability of the browser extensionapplication in certain computing devices. Other examples are possible aswell.

In some examples, some or all of the logic for the above-describedtechniques may be implemented as a computer program or application or asa plug-in module or subcomponent of another application. The describedtechniques may be varied and are not limited to the examples ordescriptions provided.

Moreover, while illustrative embodiments have been described herein, thescope thereof includes any and all embodiments having equivalentelements, modifications, omissions, combinations (e.g., of aspectsacross various embodiments), adaptations and/or alterations as would beappreciated by those in the art based on the present disclosure. Forexample, the number and orientation of components shown in the exemplarysystems may be modified. Further, with respect to the exemplary methodsillustrated in the attached drawings, the order and sequence of stepsmay be modified, and steps may be added or deleted.

Thus, the foregoing description has been presented for purposes ofillustration only. It is not exhaustive and is not limiting to theprecise forms or embodiments disclosed. Modifications and adaptationswill be apparent to those skilled in the art from consideration of thespecification and practice of the disclosed embodiments. For example,while a financial service provider and merchant have been referred toherein for ease of discussion, it is to be understood that consistentwith disclosed embodiments other entities may provide such services inconjunction with or separate from a financial service provider andmerchant.

The claims are to be interpreted broadly based on the language employedin the claims and not limited to examples described in the presentspecification, which examples are to be construed as non-exclusive.Further, the steps of the disclosed methods may be modified in anymanner, including by reordering steps and/or inserting or deletingsteps.

Furthermore, although aspects of the disclosed embodiments are describedas being associated with data stored in memory and other tangiblecomputer-readable storage mediums, one skilled in the art willappreciate that these aspects can also be stored on and executed frommany types of tangible computer-readable media, such as secondarystorage devices, like hard disks, floppy disks, or CD-ROM, or otherforms of RAM or ROM. Accordingly, the disclosed embodiments are notlimited to the above described examples, but instead is defined by theappended claims in light of their full scope of equivalents.

1. A browser extension system comprising: a communication deviceconfigured to communicate with a computing device executing a browserextension application; a memory storing instructions; and a processorconfigured to execute the instructions to perform operations comprising:generating a regular expression configured to detect a plurality offields in a web page; providing the regular expression to the browserextension application; receiving, from the browser extensionapplication, an indication of an unrecognized field in the web pagebased on an execution of the browser extension application by thecomputing device, the execution comprising using the regular expressionto detect a transaction field in a web page; in response to the receivedindication of the at least one unrecognized field, providing suggestedtransaction data to the browser extension application based oncharacteristics of the unrecognized field detected by the regularexpression; receiving, from the browser extension application, anindication of detected manual population of the unrecognized field withthe suggested transaction data; generating an updated regular expressionconfigured to detect the unrecognized field in the web page based on thedetected manual population; and providing the updated regular expressionto the browser extension application.
 2. The system of claim 1, whereinthe operations further comprise receiving, from the browser extensionapplication, programming language describing the web page.
 3. The systemof claim 1, wherein providing the updated regular expression comprisesproviding the updated regular expression in response to the detectedmanual population.
 4. The system of claim 1, wherein providing theupdated regular expression comprises providing the updated regularexpression in response to receiving a query from the computing devicethrough the browser extension application.
 5. The system of claim 1,wherein: the web page comprises a merchant-provided payment process, thepayment process comprising a message; and the operations furthercomprise: receiving, from the browser extension application, anindication of an additional transaction field detected in the message.6. The system of claim 1, further comprising: receiving, from thebrowser extension application, an indication of an element detected inthe web page.
 7. The system of claim 1, wherein the transaction fieldcomprises a payment field.
 8. A method comprising: generating a regularexpression configured to detect a plurality of fields in a web page;providing the regular expression to a browser extension applicationexecuted at a computing device; receiving, from the browser extensionapplication, an indication of an unrecognized field in the web pagebased on an execution of the browser extension application by thecomputing device, the execution comprising using the regular expressionto detect a transaction field in a web page; in response to the receivedindication of the unrecognized field, providing suggested transactiondata to the browser extension application based on characteristics ofthe unrecognized field detected by the regular expression; receivingfrom the browser extension application an indication of detected manualpopulation of the unrecognized field with the suggested transactiondata; generating, based on the manual population, an updated regularexpression configured to detect the unrecognized field in the web page;and providing the updated regular expression to the browser extensionapplication.
 9. The method of claim 8, further comprising receiving,from the browser extension application, programming language describingthe web page.
 10. The method of claim 8, wherein providing the updatedregular expression comprises providing the updated regular expression inresponse to the detected manual population.
 11. The method of claim 8,wherein providing the updated regular expression comprises providing theupdated regular expression in response to receiving a query from thecomputing device through the browser extension application.
 12. Themethod of claim 8, wherein the web page comprises a merchant-providedpayment process, the merchant-provided payment process comprising amessage, the method further comprising: receiving, from the browserextension application, an indication of an additional transaction fielddetected in the message.
 13. The method of claim 8, further comprisingreceiving, from the browser extension application, an indication of anelement detected in the web page.
 14. The method of claim 8, wherein thetransaction field comprises a payment field.
 15. A non-transitorycomputer-readable medium storing instructions that, when executed by aprocessor, cause the processor to perform operations comprising:generating a regular expression configured to detect a plurality offields in a web page; providing the regular expression to a browserextension application executed at a computing device; receiving, fromthe browser extension application, an indication of an unrecognizedfield in the web page based on an execution of the browser extensionapplication by the computing device, the execution comprising using theregular expression to detect a transaction field in a web page; inresponse to the received indication of the unrecognized field, providingsuggested transaction data to the browser extension application based oncharacteristics of the unrecognized field detected by the regularexpression; receiving from the browser extension application anindication of detected manual population of the unrecognized field withthe suggested transaction data; generating, based on the manualpopulation, an updated regular expression configured to detect theunrecognized field in the web page; and providing the updated regularexpression to the browser extension application.
 16. The non-transitorycomputer-readable medium of claim 15, wherein the operations furthercomprise receiving, from the browser extension application, programminglanguage describing the web page.
 17. The non-transitorycomputer-readable medium of claim 15, wherein providing the updatedregular expression comprises providing the updated regular expression inresponse to the detected manual population.
 18. The non-transitorycomputer-readable medium of claim 15, wherein providing the updatedregular expression comprises providing the updated regular expression inresponse to receiving a query from the computing device through thebrowser extension application.
 19. The non-transitory computer-readablemedium of claim 15, wherein: the web page comprises a merchant-providedpayment process, the payment process comprising a message; and theoperations further comprise receiving, from the browser extensionapplication, an indication of an additional transaction field detectedin the message.
 20. The non-transitory computer-readable medium of claim15, wherein the transaction field comprises a payment field.